home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nebula 2
/
Nebula Two.iso
/
SourceCode
/
Puppeteer1.1
/
Source
/
RemoteView.m
< prev
next >
Wrap
Text File
|
1995-06-12
|
3KB
|
138 lines
/*
* Puppeteer 1.1
*
* Copyright (c) 1994 Primitive Software Ltd. All rights reserved.
*
* Author: Dave Griffiths <dave@prim.demon.co.uk>
*/
#import "RemoteView.h"
#import "Puppeteer.h"
#import "WindowInfo.h"
#import "Controller.h"
extern id puppet;
@implementation RemoteView
- restoreCursor:(NXEvent *)theEvent
/*
* Restore the mouse position.
*/
{
NXPoint point;
point = theEvent->location;
[self convertPoint:&point fromView:NULL];
[self lockFocus];
PSsetmouse(point.x, point.y);
NXPing();
[self unlockFocus];
return self;
}
- mouseDownOrDragged:(NXEvent *)theEvent
{
NXPoint point = theEvent->location;
int selectedWindow = [[NXApp delegate] selectedWindow];
[self convertPoint:&point fromView:NULL];
[puppet postMouseEvent:theEvent->type window:selectedWindow
flags:theEvent->flags x:point.x y:point.y
click:theEvent->data.mouse.click];
[puppet ping];
[self restoreCursor:theEvent];
return self;
}
- mouseDown:(NXEvent *)theEvent
{
NXPoint point = theEvent->location;
NXRect wframe;
int winNum;
if ([[NXApp delegate] printMouseClicks]) {
[self convertPoint:&point fromView:NULL];
[puppetWindow getFrame:&wframe];
winNum = [puppetWindow localWindowNumber];
printf("Puppeteer: mouse down in window %d (w = %f, h = %f) at x = %f, y = %f\n", winNum, wframe.size.width, wframe.size.height, point.x, point.y);
}
[window addToEventMask:NX_MOUSEDRAGGEDMASK];
[puppet postActivate:YES];
[self mouseDownOrDragged:theEvent];
return [super mouseDown:theEvent];
}
- mouseDragged:(NXEvent *)theEvent
{
[self mouseDownOrDragged:theEvent];
return [super mouseDragged:theEvent];
}
- mouseUp:(NXEvent *)theEvent
{
NXPoint point = theEvent->location;
int selectedWindow = [[NXApp delegate] selectedWindow];
NXRect wframe;
int winNum;
[self convertPoint:&point fromView:NULL];
if ([[NXApp delegate] printMouseClicks]) {
[puppetWindow getFrame:&wframe];
winNum = [puppetWindow localWindowNumber];
printf("Puppeteer: mouse up in window %d (w = %f, h = %f) at x = %f, y = %f\n", winNum, wframe.size.width, wframe.size.height, point.x, point.y);
}
[puppet postMouseEvent:theEvent->type window:selectedWindow
flags:theEvent->flags x:point.x y:point.y
click:theEvent->data.mouse.click];
[puppet postActivate:NO];
[puppet ping];
[puppetWindow copyWindowToImage:image];
[NXApp activateSelf:YES];
[self display];
[[NXApp delegate] reloadPopupList];
[self restoreCursor:theEvent];
return [super mouseUp:theEvent];
}
- setWindow:theWindow
{
puppetWindow = theWindow;
[self setImage:[puppetWindow windowImage]];
return self;
}
- setImage:theImage
{
NXSize theSize;
image = theImage;
[image getSize:&theSize];
[self sizeTo:theSize.width:theSize.height];
[self display];
return self;
}
- drawSelf:(const NXRect *)rects :(int)count
{
[image composite:NX_COPY toPoint:&(bounds.origin)];
return self;
}
@end